#!/bin/bash
# goear2mp3
# Pequeño script para descargar de goear

cierralanzador

case $LANG in
    es*)		
	warning="También puede arrastrar el enlace de la canción\ndirectamente del navegador al icono."
	copyURL="Copia y pega aquí la URL del archivo de goear." 		
	;;
    gl*)
	warning="Tamen pode arrastrar a ligazón da canción\ndirectamente do navegador á icona."
	copyURL="Copia e pega aquí a URL do ficheiro de goear."		
	;;
    *)	# Other
	 warning="You can drag & drop the music link to\nthe icon directly from the browser."
	copyURL="Copy & paste here the goear file URL."		
	;; 
esac

rutaprograma=`dirname "$0"`

url="$@"

if [ "$url" == "" ];then
 zenity --info --text "$warning"
 url=$(zenity --entry --text "$copyURL" --entry-text "https://www.goear.com/blablabla..."); echo "$url"	
fi
if [ "$url" == "" ];then exit 0;fi
echo "URL $url"

function descargacancion() {
	codigo=`echo "$url" |cut -d "/" -f 5`
	titulo=`echo "$url" |cut -d "/" -f 6`
	rutacancion="https://www.goear.com/action/sound/get/$codigo"
	
	mkdir -p /tmp/goear
	cd /tmp/goear
	echo Descargando que es gerundio...

	wget --header="Accept: text/html" --user-agent="Mozilla/5.0 (X11; Linux i686; rv:39.0) Gecko/20100101 Firefox/39.0" --referer "https://www.goear.com/npla/swf/" "$rutacancion" -O "$rutadestino/$titulo".mp3 2>&1 | \
	     sed -u 's/^.* \+\([0-9]\+%\) \+\([0-9.]\+[GMKB]\) \+\([0-9hms.]\+\).*$/\1\n# Descargando ... \2\/s (\3)/' | \
	     zenity --progress --title="$titulo $PARTE/$TOTAL" --auto-kill --auto-close --window-icon=$rutaprograma/iconwin.png
			if [ $? -eq 0 ];then
				echo "Todo bien"
			else
				break
				pkill wget
				exit 0
			fi
}

function descargaplaylist() {
	
	codigoplaylist=`echo "$url"|cut -d"/" -f5`
	rm /tmp/playlist
	wget -np https://www.goear.com/playerplaylist/$codigoplaylist -O /tmp/playlist 
    xidel /tmp/playlist --xml -e "/playlists/playlist/node()"|cut -d"=" -f5|cut -d"\"" -f2|grep https >/tmp/playlist2
	TOTAL=`cat /tmp/playlist2|wc -l`
	PARTE=0
	for url in `cat /tmp/playlist2`;do
		PARTE=$((PARTE+1))
		descargacancion

	done

}

isplaylist=`echo $url|grep playlist`
if [ "$isplaylist" = "" ];then
	echo "No es una playlist, es solo una canción."
	rutadestino=`zenity --file-selection --directory --title "¿Dónde guardamos la canción?"`
	TOTAL=1
	PARTE=1
	descargacancion

else
	echo "Es una playlist"
	rutadestino=`zenity --file-selection --directory --title "¿Dónde guardamos todas las canciones?"`
	descargaplaylist
fi
